#define _CRT_SECURE_NO_WARNINGS

// class Solution {
// public:
//     void moveZeroes(vector<int>& nums) {
//         int index = 0;
//         while (index < nums.size())
//         {
//             if (nums[index] == 0)
//             {
//                 int i = index + 1;
//                 while (i < nums.size())
//                 {
//                     if (nums[i] != 0)
//                         break;
//                     i++;
//                 }

//                 if (i == nums.size())
//                     break;
//                 else
//                     swap(nums[index], nums[i]);
//             }

//             index++;
//         }
//     }
// };

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int left = 0, right = 0;
        while (right < nums.size())
        {
            if (nums[right] != 0)
            {
                swap(nums[right], nums[left]);
                left++;
            }
            right++;
        }
    }
};